package com.youlu.campus.activity.entity;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 用户抽奖记录
 *
 * @Description: UserLotteryRecord
 * @Date 2025/7/31
 * @module UserLotteryRecord
 * @author: su
 */
@Data
@Document(collection = "user_lottery_record")
public class UserLotteryRecord {

    public static final String RECORD_TYPE_USER = "user";//用户抽奖
    public static final String RECORD_TYPE_SYSTEM = "system";//系统配置

    /**
     * 记录ID
     */
    @Id
    private String id;

    /**
     * 用户ID
     */
    @Indexed
    @NotNull(message = "用户ID不能为空")
    private String userId;

    /**
     * 用户手机号
     */
    @Indexed
    private String mobile;

    /**
     * 用户昵称
     */
    private String userNickeName;

    /**
     * 活动ID
     */
    @Indexed
    @NotNull(message = "活动ID不能为空")
    private String activityId;

    /**
     * 活动名称
     */
    private String activityName;

    /**
     * 抽奖活动ID
     */
    @Indexed
    @NotNull(message = "抽奖活动id不能为空")
    private String lotteryId;

    /**
     * 奖品ID
     */
    private String prizeId;

    /**
     * 奖品名称
     */
    private String prizeName;

    /**
     * 奖品图片
     */
    private String prizeImg;

    /**
     * 奖品类型  奖品类型：1-实物，2-虚拟物品，3-贡献值等
     */
    private Integer prizeType;

    /**
     * 一次中奖数量
     */
    private Integer oneCount;

    /**
     * 抽奖时间
     */
    private LocalDateTime drawTime;

    /**
     * 奖品状态：0-未领取，1-已领取，2-已过期
     */
    @Indexed
    private Integer status = 0;

    /**
     * 领取时间
     */
    private LocalDateTime receiveTime;

    /**
     * 备注信息
     */
    private String remark;

    /**
     * 记录类型 user-用户中奖记录，system-系统配置
     */
    private String recordType = RECORD_TYPE_USER;

    /**
     * 活动客服二维码
     */
    private String customerService;
}
